home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 November: Tool Chest / Dev.CD Nov 99 TC.toast / What's New? / Technical Documentation / Misc Standards / Mac OS Text Encodings / GUJARATI.TXT < prev    next >
Encoding:
Text File  |  1999-09-24  |  13.3 KB  |  378 lines  |  [TEXT/MPS ]

  1. #=======================================================================
  2. #   FTP file name:  GUJARATI.TXT
  3. #
  4. #   Contents:       Map (external version) from Mac OS Gujarati
  5. #                   encoding to Unicode 2.1
  6. #
  7. #   Copyright:      (c) 1997-1999 by Apple Computer, Inc., all rights
  8. #                   reserved.
  9. #
  10. #   Contact:        charsets@apple.com
  11. #
  12. #   Changes:
  13. #
  14. #       b02  1999-Sep-22    Update contact e-mail address. Matches
  15. #                           internal utom<b1>, ufrm<b1>, and Text
  16. #                           Encoding Converter version 1.5.
  17. #       n02  1998-Feb-05    First version; matches internal utom<n4>,
  18. #                           ufrm<n5>.
  19. #
  20. # Standard header:
  21. # ----------------
  22. #
  23. #   Apple, the Apple logo, and Macintosh are trademarks of Apple
  24. #   Computer, Inc., registered in the United States and other countries.
  25. #   Unicode is a trademark of Unicode Inc. For the sake of brevity,
  26. #   throughout this document, "Macintosh" can be used to refer to
  27. #   Macintosh computers and "Unicode" can be used to refer to the
  28. #   Unicode standard.
  29. #
  30. #   Apple makes no warranty or representation, either express or
  31. #   implied, with respect to these tables, their quality, accuracy, or
  32. #   fitness for a particular purpose. In no event will Apple be liable
  33. #   for direct, indirect, special, incidental, or consequential damages 
  34. #   resulting from any defect or inaccuracy in this document or the
  35. #   accompanying tables.
  36. #
  37. #   These mapping tables and character lists are subject to change.
  38. #   The latest tables should be available from the following:
  39. #
  40. #   <ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
  41. #   <ftp://dev.apple.com/devworld/Technical_Documentation/Misc._Standards/>
  42. #
  43. #   For general information about Mac OS encodings and these mapping
  44. #   tables, see the file "README.TXT".
  45. #
  46. # Format:
  47. # -------
  48. #
  49. #   Three tab-separated columns;
  50. #   '#' begins a comment which continues to the end of the line.
  51. #     Column #1 is the Mac OS Gujarati code or code sequence
  52. #       (in hex as 0xNN or 0xNN+0xNN)
  53. #     Column #2 is the corresponding Unicode or Unicode sequence
  54. #       (in hex as 0xNNNN or 0xNNNN+0xNNNN).
  55. #     Column #3 is a comment containing the Unicode name or sequence
  56. #       of names. In some cases an additional comment follows the
  57. #       Unicode name(s).
  58. #
  59. #   The entries are in two sections. The first section is for pairs of
  60. #   Mac OS Gujarati code points that must be mapped in a special way.
  61. #   The second section maps individual code points.
  62. #
  63. #   Within each section, the entries are in Mac OS Gujarati code order.
  64. #
  65. #   Control character mappings are not shown in this table, following
  66. #   the conventions of the standard UTC mapping tables. However, the
  67. #   Mac OS Gujarati character set uses the standard control characters
  68. #   at 0x00-0x1F and 0x7F.
  69. #
  70. # Notes on Mac OS Gujarati:
  71. # -------------------------
  72. #
  73. #   Mac OS Gujarati is based on IS 13194:1991 (ISCII-91), with the
  74. #   addition of several punctuation and symbol characters. However,
  75. #   Mac OS Gujarati does not support the ATR (attribute) mechanism of
  76. #   ISCII-91.
  77. #
  78. # 1. ISCII-91 features in Mac OS Gujarati include:
  79. #
  80. #  a) Overloading of nukta
  81. #
  82. #     In addition to using the nukta (0xE9) like a combining dot below,
  83. #     nukta is overloaded to function as a general character modifier.
  84. #     In this role, certain code points followed by 0xE9 are treated as
  85. #     a two-byte code point representing a character which may be
  86. #     rather different than the characters represented by either of
  87. #     the code points alone. For example, the character GUJARATI OM
  88. #     (U+0AD0) is represented in ISCII-91 as candrabindu + nukta.
  89. #
  90. #  b) Explicit halant and soft halant
  91. #
  92. #     A double halant (0xE8 + 0xE8) constitutes an "explicit halant",
  93. #     which will always appear as a halant instead of causing formation
  94. #     of a ligature or half-form consonant.
  95. #
  96. #     Halant followed by nukta (0xE8 + 0xE9) constitutes a "soft
  97. #     halant", which prevents formation of a ligature and instead
  98. #     retains the half-form of the first consonant.
  99. #
  100. #  c) Invisible consonant
  101. #
  102. #     The byte 0xD9 (called INV in ISCII-91) is an invisible consonant:
  103. #     It behaves like a consonant but has no visible appearance. It is
  104. #     intended to be used (often in combination with halant) to display
  105. #     dependent forms in isolation, such as the RA forms or consonant
  106. #     half-forms.
  107. #
  108. #  d) Extensions for Vedic, etc.
  109. #
  110. #     The byte 0xF0 (called EXT in ISCII-91) followed by any byte in
  111. #     the range 0xA1-0xEE constitutes a two-byte code point which can
  112. #     be used to represent additional characters for Vedic (or other
  113. #     extensions); 0xF0 followed by any other byte value constitutes
  114. #     malformed text. Mac OS Gujarati supports this mechanism, but
  115. #     does not currently map any of these two-byte code points to
  116. #     anything.
  117. #
  118. # 2. Mac OS Gujarati additions
  119. #
  120. #   Mac OS Gujarati adds characters using the code points
  121. #   0x80-0x8A and 0x90.
  122. #
  123. # 3. Unused code points
  124. #   
  125. #   The following code points are currently unused, and are not shown
  126. #   here: 0x8B-0x8F, 0x91-0xA0, 0xAB, 0xAF, 0xC7, 0xCE, 0xD0, 0xD3,
  127. #   0xE0, 0xE4, 0xEB-0xEF, 0xFB-0xFF. In addition, 0xF0 is not shown
  128. #   here, but it has a special function as described above.
  129. #
  130. # Unicode mapping issues and notes:
  131. # ---------------------------------
  132. #
  133. # 1. Mapping the byte pairs
  134. #
  135. #   If one of the following byte values is encountered when mapping
  136. #   Mac OS Gujarati text - xA1, xAA, xDF, or 0xE8 - then the next
  137. #   byte (if there is one) should be examined. If the next byte is
  138. #   0xE9 - or also 0xE8, if the first byte was 0xE8 - then the byte
  139. #   pair should be mapped using the first section of the mapping
  140. #   table below. Otherwise, each byte should be mapped using the
  141. #   second section of the mapping table below.
  142. #
  143. #   - The Unicode Standard, Version 2.0, specifies how explicit
  144. #     halant and soft halant should be represented in Unicode;
  145. #     these mappings are used below.
  146. #
  147. #   If the byte value 0xF0 is encountered when mapping Mac OS 
  148. #   Gujarati text, then the next byte should be examined. If there
  149. #   is no next byte (e.g. 0xF0 at end of buffer), the mapping
  150. #   process should indicate incomplete character. If there is a next
  151. #   byte but it is not in the range 0xA1-0xEE, the mapping process
  152. #   should indicate malformed text. Otherwise, the mapping process
  153. #   should treat the byte pair as a valid two-byte code point with no
  154. #   mapping (e.g. map it to QUESTION MARK, REPLACEMENT CHARACTER,
  155. #   etc.).
  156. #
  157. # 2. Mapping the invisible consonant
  158. #
  159. #   It has been suggested that INV in ISCII-91 should map to ZERO
  160. #   WIDTH NON-JOINER in Unicode. However, this causes problems with
  161. #   roundtrip fidelity: The ISCII-91 sequences 0xE8+0xE8 and 0xE8+0xD9
  162. #   would map to the same sequence of Unicode characters. We have
  163. #   instead mapped INV to LEFT-TO-RIGHT MARK, which avoids these
  164. #   problems.
  165. #
  166. # Details of mapping changes in each version:
  167. # -------------------------------------------
  168. #
  169. ##################
  170.  
  171. # Section 1: Map the following byte pairs as indicated:
  172. # (ZWNJ means ZERO WIDTH NON-JOINER, ZWJ means ZERO WIDTH JOINER)
  173. # (Also see note about 0xF0 in comments above)
  174.  
  175. 0xA1+0xE9    0x0AD0    # GUJARATI OM
  176. 0xAA+0xE9    0x0AE0    # GUJARATI LETTER VOCALIC RR
  177. 0xDF+0xE9    0x0AC4    # GUJARATI VOWEL SIGN VOCALIC RR
  178. 0xE8+0xE8    0x0ACD+0x200C    # GUJARATI SIGN VIRAMA + ZWNJ    # explicit halant
  179. 0xE8+0xE9    0x0ACD+0x200D    # GUJARATI SIGN VIRAMA + ZWJ    # soft halant
  180.  
  181. # Section 2: Map the remaining bytes as follows:
  182.  
  183. 0x20    0x0020    # SPACE
  184. 0x21    0x0021    # EXCLAMATION MARK
  185. 0x22    0x0022    # QUOTATION MARK
  186. 0x23    0x0023    # NUMBER SIGN
  187. 0x24    0x0024    # DOLLAR SIGN
  188. 0x25    0x0025    # PERCENT SIGN
  189. 0x26    0x0026    # AMPERSAND
  190. 0x27    0x0027    # APOSTROPHE
  191. 0x28    0x0028    # LEFT PARENTHESIS
  192. 0x29    0x0029    # RIGHT PARENTHESIS
  193. 0x2A    0x002A    # ASTERISK
  194. 0x2B    0x002B    # PLUS SIGN
  195. 0x2C    0x002C    # COMMA
  196. 0x2D    0x002D    # HYPHEN-MINUS
  197. 0x2E    0x002E    # FULL STOP
  198. 0x2F    0x002F    # SOLIDUS
  199. 0x30    0x0030    # DIGIT ZERO
  200. 0x31    0x0031    # DIGIT ONE
  201. 0x32    0x0032    # DIGIT TWO
  202. 0x33    0x0033    # DIGIT THREE
  203. 0x34    0x0034    # DIGIT FOUR
  204. 0x35    0x0035    # DIGIT FIVE
  205. 0x36    0x0036    # DIGIT SIX
  206. 0x37    0x0037    # DIGIT SEVEN
  207. 0x38    0x0038    # DIGIT EIGHT
  208. 0x39    0x0039    # DIGIT NINE
  209. 0x3A    0x003A    # COLON
  210. 0x3B    0x003B    # SEMICOLON
  211. 0x3C    0x003C    # LESS-THAN SIGN
  212. 0x3D    0x003D    # EQUALS SIGN
  213. 0x3E    0x003E    # GREATER-THAN SIGN
  214. 0x3F    0x003F    # QUESTION MARK
  215. 0x40    0x0040    # COMMERCIAL AT
  216. 0x41    0x0041    # LATIN CAPITAL LETTER A
  217. 0x42    0x0042    # LATIN CAPITAL LETTER B
  218. 0x43    0x0043    # LATIN CAPITAL LETTER C
  219. 0x44    0x0044    # LATIN CAPITAL LETTER D
  220. 0x45    0x0045    # LATIN CAPITAL LETTER E
  221. 0x46    0x0046    # LATIN CAPITAL LETTER F
  222. 0x47    0x0047    # LATIN CAPITAL LETTER G
  223. 0x48    0x0048    # LATIN CAPITAL LETTER H
  224. 0x49    0x0049    # LATIN CAPITAL LETTER I
  225. 0x4A    0x004A    # LATIN CAPITAL LETTER J
  226. 0x4B    0x004B    # LATIN CAPITAL LETTER K
  227. 0x4C    0x004C    # LATIN CAPITAL LETTER L
  228. 0x4D    0x004D    # LATIN CAPITAL LETTER M
  229. 0x4E    0x004E    # LATIN CAPITAL LETTER N
  230. 0x4F    0x004F    # LATIN CAPITAL LETTER O
  231. 0x50    0x0050    # LATIN CAPITAL LETTER P
  232. 0x51    0x0051    # LATIN CAPITAL LETTER Q
  233. 0x52    0x0052    # LATIN CAPITAL LETTER R
  234. 0x53    0x0053    # LATIN CAPITAL LETTER S
  235. 0x54    0x0054    # LATIN CAPITAL LETTER T
  236. 0x55    0x0055    # LATIN CAPITAL LETTER U
  237. 0x56    0x0056    # LATIN CAPITAL LETTER V
  238. 0x57    0x0057    # LATIN CAPITAL LETTER W
  239. 0x58    0x0058    # LATIN CAPITAL LETTER X
  240. 0x59    0x0059    # LATIN CAPITAL LETTER Y
  241. 0x5A    0x005A    # LATIN CAPITAL LETTER Z
  242. 0x5B    0x005B    # LEFT SQUARE BRACKET
  243. 0x5C    0x005C    # REVERSE SOLIDUS
  244. 0x5D    0x005D    # RIGHT SQUARE BRACKET
  245. 0x5E    0x005E    # CIRCUMFLEX ACCENT
  246. 0x5F    0x005F    # LOW LINE
  247. 0x60    0x0060    # GRAVE ACCENT
  248. 0x61    0x0061    # LATIN SMALL LETTER A
  249. 0x62    0x0062    # LATIN SMALL LETTER B
  250. 0x63    0x0063    # LATIN SMALL LETTER C
  251. 0x64    0x0064    # LATIN SMALL LETTER D
  252. 0x65    0x0065    # LATIN SMALL LETTER E
  253. 0x66    0x0066    # LATIN SMALL LETTER F
  254. 0x67    0x0067    # LATIN SMALL LETTER G
  255. 0x68    0x0068    # LATIN SMALL LETTER H
  256. 0x69    0x0069    # LATIN SMALL LETTER I
  257. 0x6A    0x006A    # LATIN SMALL LETTER J
  258. 0x6B    0x006B    # LATIN SMALL LETTER K
  259. 0x6C    0x006C    # LATIN SMALL LETTER L
  260. 0x6D    0x006D    # LATIN SMALL LETTER M
  261. 0x6E    0x006E    # LATIN SMALL LETTER N
  262. 0x6F    0x006F    # LATIN SMALL LETTER O
  263. 0x70    0x0070    # LATIN SMALL LETTER P
  264. 0x71    0x0071    # LATIN SMALL LETTER Q
  265. 0x72    0x0072    # LATIN SMALL LETTER R
  266. 0x73    0x0073    # LATIN SMALL LETTER S
  267. 0x74    0x0074    # LATIN SMALL LETTER T
  268. 0x75    0x0075    # LATIN SMALL LETTER U
  269. 0x76    0x0076    # LATIN SMALL LETTER V
  270. 0x77    0x0077    # LATIN SMALL LETTER W
  271. 0x78    0x0078    # LATIN SMALL LETTER X
  272. 0x79    0x0079    # LATIN SMALL LETTER Y
  273. 0x7A    0x007A    # LATIN SMALL LETTER Z
  274. 0x7B    0x007B    # LEFT CURLY BRACKET
  275. 0x7C    0x007C    # VERTICAL LINE
  276. 0x7D    0x007D    # RIGHT CURLY BRACKET
  277. 0x7E    0x007E    # TILDE
  278. #
  279. 0x80    0x00D7    # MULTIPLICATION SIGN
  280. 0x81    0x2212    # MINUS SIGN
  281. 0x82    0x2013    # EN DASH
  282. 0x83    0x2014    # EM DASH
  283. 0x84    0x2018    # LEFT SINGLE QUOTATION MARK
  284. 0x85    0x2019    # RIGHT SINGLE QUOTATION MARK
  285. 0x86    0x2026    # HORIZONTAL ELLIPSIS
  286. 0x87    0x2022    # BULLET
  287. 0x88    0x00A9    # COPYRIGHT SIGN
  288. 0x89    0x00AE    # REGISTERED SIGN
  289. 0x8A    0x2122    # TRADE MARK SIGN
  290. #
  291. 0x90    0x0965    # DEVANAGARI DOUBLE DANDA
  292. #
  293. 0xA1    0x0A81    # GUJARATI SIGN CANDRABINDU
  294. 0xA2    0x0A82    # GUJARATI SIGN ANUSVARA
  295. 0xA3    0x0A83    # GUJARATI SIGN VISARGA
  296. 0xA4    0x0A85    # GUJARATI LETTER A
  297. 0xA5    0x0A86    # GUJARATI LETTER AA
  298. 0xA6    0x0A87    # GUJARATI LETTER I
  299. 0xA7    0x0A88    # GUJARATI LETTER II
  300. 0xA8    0x0A89    # GUJARATI LETTER U
  301. 0xA9    0x0A8A    # GUJARATI LETTER UU
  302. 0xAA    0x0A8B    # GUJARATI LETTER VOCALIC R
  303. #
  304. 0xAC    0x0A8F    # GUJARATI LETTER E
  305. 0xAD    0x0A90    # GUJARATI LETTER AI
  306. 0xAE    0x0A8D    # GUJARATI VOWEL CANDRA E
  307. #
  308. 0xB0    0x0A93    # GUJARATI LETTER O
  309. 0xB1    0x0A94    # GUJARATI LETTER AU
  310. 0xB2    0x0A91    # GUJARATI VOWEL CANDRA O
  311. 0xB3    0x0A95    # GUJARATI LETTER KA
  312. 0xB4    0x0A96    # GUJARATI LETTER KHA
  313. 0xB5    0x0A97    # GUJARATI LETTER GA
  314. 0xB6    0x0A98    # GUJARATI LETTER GHA
  315. 0xB7    0x0A99    # GUJARATI LETTER NGA
  316. 0xB8    0x0A9A    # GUJARATI LETTER CA
  317. 0xB9    0x0A9B    # GUJARATI LETTER CHA
  318. 0xBA    0x0A9C    # GUJARATI LETTER JA
  319. 0xBB    0x0A9D    # GUJARATI LETTER JHA
  320. 0xBC    0x0A9E    # GUJARATI LETTER NYA
  321. 0xBD    0x0A9F    # GUJARATI LETTER TTA
  322. 0xBE    0x0AA0    # GUJARATI LETTER TTHA
  323. 0xBF    0x0AA1    # GUJARATI LETTER DDA
  324. 0xC0    0x0AA2    # GUJARATI LETTER DDHA
  325. 0xC1    0x0AA3    # GUJARATI LETTER NNA
  326. 0xC2    0x0AA4    # GUJARATI LETTER TA
  327. 0xC3    0x0AA5    # GUJARATI LETTER THA
  328. 0xC4    0x0AA6    # GUJARATI LETTER DA
  329. 0xC5    0x0AA7    # GUJARATI LETTER DHA
  330. 0xC6    0x0AA8    # GUJARATI LETTER NA
  331. #
  332. 0xC8    0x0AAA    # GUJARATI LETTER PA
  333. 0xC9    0x0AAB    # GUJARATI LETTER PHA
  334. 0xCA    0x0AAC    # GUJARATI LETTER BA
  335. 0xCB    0x0AAD    # GUJARATI LETTER BHA
  336. 0xCC    0x0AAE    # GUJARATI LETTER MA
  337. 0xCD    0x0AAF    # GUJARATI LETTER YA
  338. #
  339. 0xCF    0x0AB0    # GUJARATI LETTER RA
  340. #
  341. 0xD1    0x0AB2    # GUJARATI LETTER LA
  342. 0xD2    0x0AB3    # GUJARATI LETTER LLA
  343. #
  344. 0xD4    0x0AB5    # GUJARATI LETTER VA
  345. 0xD5    0x0AB6    # GUJARATI LETTER SHA
  346. 0xD6    0x0AB7    # GUJARATI LETTER SSA
  347. 0xD7    0x0AB8    # GUJARATI LETTER SA
  348. 0xD8    0x0AB9    # GUJARATI LETTER HA
  349. 0xD9    0x200E    # LEFT-TO-RIGHT MARK    # invisible consonant
  350. 0xDA    0x0ABE    # GUJARATI VOWEL SIGN AA
  351. 0xDB    0x0ABF    # GUJARATI VOWEL SIGN I
  352. 0xDC    0x0AC0    # GUJARATI VOWEL SIGN II
  353. 0xDD    0x0AC1    # GUJARATI VOWEL SIGN U
  354. 0xDE    0x0AC2    # GUJARATI VOWEL SIGN UU
  355. 0xDF    0x0AC3    # GUJARATI VOWEL SIGN VOCALIC R
  356. #
  357. 0xE1    0x0AC7    # GUJARATI VOWEL SIGN E
  358. 0xE2    0x0AC8    # GUJARATI VOWEL SIGN AI
  359. 0xE3    0x0AC5    # GUJARATI VOWEL SIGN CANDRA E
  360. #
  361. 0xE5    0x0ACB    # GUJARATI VOWEL SIGN O
  362. 0xE6    0x0ACC    # GUJARATI VOWEL SIGN AU
  363. 0xE7    0x0AC9    # GUJARATI VOWEL SIGN CANDRA O
  364. 0xE8    0x0ACD    # GUJARATI SIGN VIRAMA    # halant
  365. 0xE9    0x0ABC    # GUJARATI SIGN NUKTA
  366. 0xEA    0x0964    # DEVANAGARI DANDA
  367. #
  368. 0xF1    0x0AE6    # GUJARATI DIGIT ZERO
  369. 0xF2    0x0AE7    # GUJARATI DIGIT ONE
  370. 0xF3    0x0AE8    # GUJARATI DIGIT TWO
  371. 0xF4    0x0AE9    # GUJARATI DIGIT THREE
  372. 0xF5    0x0AEA    # GUJARATI DIGIT FOUR
  373. 0xF6    0x0AEB    # GUJARATI DIGIT FIVE
  374. 0xF7    0x0AEC    # GUJARATI DIGIT SIX
  375. 0xF8    0x0AED    # GUJARATI DIGIT SEVEN
  376. 0xF9    0x0AEE    # GUJARATI DIGIT EIGHT
  377. 0xFA    0x0AEF    # GUJARATI DIGIT NINE
  378.